function models = getMoneyModels()
    models = cell(0);

    % This is the promary model
    models{end + 1} = struct;
    models{end}.name = 'Primary';
    models{end}.startdate = -1;
    models{end}.events = cell(0);
    
    events = cell(0);
    events{end + 1} = insertEventOnce('Kansas State Income Tax', '', -235.00, datenum(2011, 7, 1), datenum(2011,7,1));

    events{end + 1} = insertEventMonthly('Rent', '', -1650.00, datenum(2011, 7, 1), datenum(2011,7,1), 0, -1);
    events{end + 1} = insertEventMonthly('Ring', '', -400.00, datenum(2011, 7, 13), datenum(2011,7,13), 0, datenum(2011,12,25));
    events{end + 1} = insertEventMonthly('Student Loan', '', -500.00, datenum(2011, 7, 13), datenum(2011,7,13), 0, -1);
    events{end + 1} = insertEventMonthly('Student Loan', '', -500.00, datenum(2011, 7, 13), datenum(2011,7,13), 0, -1);
    events{end + 1} = insertEventMonthly('Car/Rent Insurance', '', -78.45, datenum(2011, 7, 23), datenum(2011,7,23), 0, -1);
    events{end + 1} = insertEventMonthly('Netflix', '', -20.99, datenum(2011, 7, 8), datenum(2011,7,8), 0, -1);
    events{end + 1} = insertEventMonthly('Phone', '', -190.00, datenum(2011, 7, 13), datenum(2011,7,13), 0, -1);
    events{end + 1} = insertEventMonthly('Cable', '', -100.00, datenum(2011, 7, 13), datenum(2011,7,13), 0, -1);
    events{end + 1} = insertEventMonthly('Credit Card', '', -100.00, datenum(2011, 7, 1), datenum(2011,7,1), 0, -1);
    events{end + 1} = insertEventWeekly('Savings Transfer', '', -200.00, datenum(2011, 6, 24), datenum(2011,6,24), {'fri'}, 1, -1);
    events{end + 1} = insertEventWeekly('Food', '', -200, datenum(2011, 6, 26), datenum(2011,7,2), {'sun'}, 1, -1);
    events{end + 1} = insertEventWeekly('Gas', '', -50, datenum(2011, 6, 27), datenum(2011,6,27), {'mon'}, 2, -1);
    events{end + 1} = insertEventWeekly('Dry Cleaning', '', -40, datenum(2011, 7, 9), datenum(2011,7,9), {'sat'}, 2, -1);

    events{end + 1} = insertEventMonthly('Snowboard', '', -100, datenum(2011, 12, 1), datenum(2011,12,1), 0, datenum(2012,3,1));

    
    
    events{end + 1} = insertEventWeekly('Pay Check', '', 2489.34, datenum(2011, 6, 24), datenum(2011,6,24), {'fri'}, 2, -1);
%    events{end + 1} = insertEventWeekly('Savings Retransfer', '', 200, datenum(2011, 6, 24), datenum(2011,6,24), {'fri'}, 2, -1);
%    events{end + 1} = insertEventMonthly('Fun', '', 1700, datenum(2011, 6, 1), datenum(2011,6,1), 0, -1);
    
    models{end}.events = events;
    clear events;
end

function ret = insertEventOnce(name, desc, ammount, start, stop)
    ret = struct;

    ret.name  = name;
    ret.desc  = desc;
    ret.start = start;
    ret.stop  = stop;
    ret.ammount = ammount;
    ret.repeat.type = 'none';
    
    ret.ammountDensity = ammount / (1.0 + (stop - start));
end

function ret = insertEventYearly(name, desc, ammount, start, stop, skip, rep_stop)
    ret = struct;

    ret.name  = name;
    ret.desc  = desc;
    ret.start = start;
    ret.stop  = stop;
    ret.ammount = ammount;
    ret.repeat.type = 'date';
    ret.repeat.skipyear = skip;
    ret.repeat.stopdate = rep_stop;

    ret.ammountDensity = ammount / (1.0 + (stop - start));
end

function ret = insertEventMonthly(name, desc, ammount, start, stop, skip, rep_stop)
    ret = struct;

    ret.name  = name;
    ret.desc  = desc;
    ret.start = start;
    ret.stop  = stop;
    ret.ammount = ammount;
    ret.repeat.type = 'monthly';
    ret.repeat.skipmonth = skip;
    ret.repeat.stopdate = rep_stop;

    ret.ammountDensity = ammount / (1.0 + (stop - start));
end

function ret = insertEventWeekly(name, desc, ammount, start, stop, weekdays, skip, rep_stop)
    ret = struct;

    ret.name  = name;
    ret.desc  = desc;
    ret.start = start;
    ret.stop  = stop;
    ret.ammount = ammount;
    ret.repeat.type = 'weekly';
    ret.repeat.weekdays = weekdays;
    ret.repeat.skipweek = skip;
    ret.repeat.stopdate = rep_stop;

    ret.ammountDensity = ammount / (1.0 + (stop - start));
end




